跳到主要内容

Julia 参数方法

阐述

在方法定义中加入类型变量,使得函数的签名类型变为 Julia UnionAll 类型。这样的变量可以用来联系两个不同的变量或作为返回值。变量可以设定上界。

实例

julia> same_type(x::T, y::T) where {T} = true
same_type (generic function with 1 method)

julia> mytypeof(x::T) where {T} = T
mytypeof (generic function with 1 method)

julia> same_type_numeric(x::T, y::T) where {T<:Number} = true
same_type_numeric (generic function with 1 method)

设计模式

提取类型参数

abstract type AbstractArray{T, N} end
eltype(::Type{<:AbstractArray{T}}) where {T} = T

替换类型参数

input = convert(AbstractArray{Eltype}, input)
output = similar(input, Eltype)

性质

相关内容

参考文献